The Internet provides a vast amount of information, which may be stored at many different sites and on many different devices, such as on servers and clients or in databases, around the world. These different devices at the different sites are communicatively linked to computer or communication networks over wire-line or wireless connections. A person may access specific pieces of information available on the Internet using a suitable network device (e.g., a computer, a smart mobile telephone, etc.) connected to a network.
Due to the sheer amount of information available on the Internet, it is impractical as well as impossible for a person (e.g., a network user) to manually search throughout the Internet for the specific pieces of information he needs. Instead, most network users rely on different types of computer-implemented tools to help them locate the desired information. One of the most commonly and widely used computer-implemented tools is a search tool, also referred to as a search engine. To search for information relating to a specific topic on the Internet, a user typically provides a few words, often referred to as a “search query” describing the topic to a search tool. The search tool conducts a search based on the search query using various search algorithms and generates a set of search results, each corresponding to some information that is likely to be related to the search query. The search results are then presented to the user.
Sophisticated search tools implement many functionalities to better identify relevant search results. For example, a search tool may search an index of documents or items according to one or more search algorithms in order to generate a set of search results in response to a search query. The index of documents or items, also called a search index, may be ranked in a particular order (e.g., most important to least important) that may be independent of any search query. There are continuous efforts to improve the quality of search results generated by search tools.